home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / apps / astronmy / strchart.arc / patch.arc / planet.dif < prev    next >
Encoding:
Text File  |  1989-03-23  |  17.6 KB  |  598 lines

  1. *** ../starchart/planet.c    Mon Sep 19 09:11:43 1988
  2. --- planet.c    Mon Sep 26 08:00:31 1988
  3. ***************
  4. *** 45,57 ****
  5.   #include <stdio.h>
  6.   #include <math.h>
  7.   
  8.   #ifndef SYSV
  9.   #include <sys/time.h>    /* for getting current GMT (generic Unix) */
  10.   #else
  11.   #include <time.h>    /* for getting current GMT (sysV version) */
  12.   #endif
  13.   
  14. ! #define CURYEAR    1987    /* default year -- needs to be maintained */
  15.   
  16.   #ifndef PLANETFILE
  17.   #define PLANETFILE "./planet.star"
  18. --- 45,62 ----
  19.   #include <stdio.h>
  20.   #include <math.h>
  21.   
  22. + #ifdef ST_MWC /* Mark Williams C for the Atari ST */
  23. + #define SYSV /* MWC is almost SYSV compatible */
  24. + #include <osbind.h> /* Needed for Cconws() and Crawcin() */
  25. + #endif /* ST_MWC */
  26.   #ifndef SYSV
  27.   #include <sys/time.h>    /* for getting current GMT (generic Unix) */
  28.   #else
  29.   #include <time.h>    /* for getting current GMT (sysV version) */
  30.   #endif
  31.   
  32. ! #define CURYEAR    1989    /* default year -- needs to be maintained */
  33.   
  34.   #ifndef PLANETFILE
  35.   #define PLANETFILE "./planet.star"
  36. ***************
  37. *** 68,73 ****
  38. --- 73,84 ----
  39.   #define MAGURA 590
  40.   #define MAGNEP 800
  41.   
  42. + #ifdef ST_MWC
  43. + #define daylight tt.tm_isdst
  44. + extern char *getenv(); /* used to see if we're running from the desktop */
  45. + struct tm_t *tt;
  46. + #endif /* ST_MWC */
  47.   double pie, rad;
  48.   double htod(), atof(), kepler(), truean();
  49.   double longi(), lati(), poly(), aint(), range();
  50. ***************
  51. *** 119,125 ****
  52. --- 130,138 ----
  53.       gettimeofday(&tv, &tz);
  54.       return(GMT1970 + tv.tv_sec/SECSPERDAY);
  55.   #else
  56. + #ifndef ST_MWC
  57.       long time();
  58. + #endif /* ST_MWC */
  59.       return(GMT1970 + (double)time((long *)0)/SECSPERDAY);
  60.   #endif
  61.       }
  62. ***************
  63. *** 201,207 ****
  64.       aa1 = (int) (year/100);
  65.       bb1 = 2 - aa1 + (int)(aa1/4);
  66.       jd = aint(365.25*year) + aint(30.6001*(month + 1));
  67. !     jd = jd  + day + 1720994.5;
  68.       if((year + month/100) > 1582.10) jd = jd + bb1;
  69.       return(jd);
  70.       }
  71. --- 214,220 ----
  72.       aa1 = (int) (year/100);
  73.       bb1 = 2 - aa1 + (int)(aa1/4);
  74.       jd = aint(365.25*year) + aint(30.6001*(month + 1));
  75. !     jd += day + 1720994.5;
  76.       if((year + month/100) > 1582.10) jd = jd + bb1;
  77.       return(jd);
  78.       }
  79. ***************
  80. *** 218,224 ****
  81. --- 231,243 ----
  82.       double N,D,epli,thapp,omeg;
  83.       double nu2,P,Q,S,V,W,ze,l1pert,epert,w1pert,apert;
  84.       double psi,H,G,eta,th;
  85. + #ifdef ST_MWC
  86. +     time_t now;
  87.   
  88. +     now = time((long) 0);
  89. +     tt = localtime(&now);
  90. + #endif /* ST_MWC */
  91.   #define WRITEMODE "w"
  92.   #define OPENFAIL 0
  93.       progname = argv[0];
  94. ***************
  95. *** 321,327 ****
  96.           RA = atan2(N,D)/rad;
  97.           DEC = asin(sin(epli*rad)*sin(thapp*rad))/rad;
  98.           speak(RA,DEC,Sr, MAGSOL, "PS", "Sol");
  99. ! /* tansformation of coordinates on Mercury and output */
  100.           trans(r,b,ll,Stheta,Sr,epli, MAGMER, "PM", "Mercury");
  101.           
  102.   /* Now start on Venus */
  103. --- 340,346 ----
  104.           RA = atan2(N,D)/rad;
  105.           DEC = asin(sin(epli*rad)*sin(thapp*rad))/rad;
  106.           speak(RA,DEC,Sr, MAGSOL, "PS", "Sol");
  107. ! /* transformation of coordinates on Mercury and output */
  108.           trans(r,b,ll,Stheta,Sr,epli, MAGMER, "PM", "Mercury");
  109.           
  110.   /* Now start on Venus */
  111. ***************
  112. *** 373,380 ****
  113.       radpert = 0.000022501 * cos((2*M-2*M2-58.208)*rad)
  114.            +0.000019045 * cos((3*M-3*M2+92.577)*rad)
  115.            +0.000006887 * cos((M5-M2-118.090)*rad)
  116. !          +0.000005172 * cos((M-M2-29.110)*rad)
  117. !          +0.000003620 * cos((5*M-4*M2-104.208)*rad)
  118.            +0.000003283 * cos((4*M-4*M2+63.513)*rad)
  119.            +0.000003074 * cos((2*M5-2*M2-55.167)*rad);
  120.       r = r + radpert;
  121. --- 392,399 ----
  122.       radpert = 0.000022501 * cos((2*M-2*M2-58.208)*rad)
  123.            +0.000019045 * cos((3*M-3*M2+92.577)*rad)
  124.            +0.000006887 * cos((M5-M2-118.090)*rad)
  125. !          +0.000005172 * cos((M-M2-29.110)*rad);
  126. !     radpert+= 0.000003620 * cos((5*M-4*M2-104.208)*rad)
  127.            +0.000003283 * cos((4*M-4*M2+63.513)*rad)
  128.            +0.000003074 * cos((2*M5-2*M2-55.167)*rad);
  129.       r = r + radpert;
  130. ***************
  131. *** 425,432 ****
  132.       lonpert = 0.00705*cos((M5-M4-48.958)*rad)
  133.            +0.00607*cos((2*M5-M4-188.350)*rad)
  134.            +0.00445*cos((2*M5-2*M4-191.897)*rad)
  135. !          +0.00388*cos((M-2*M4+20.495)*rad)
  136. !          +0.00238*cos((M-M4+35.097)*rad)
  137.            +0.00204*cos((2*M-3*M4+158.638)*rad)
  138.            +0.00177*cos((3*M4-M2-57.602)*rad)
  139.            +0.00136*cos((2*M-4*M4+154.093)*rad)
  140. --- 444,451 ----
  141.       lonpert = 0.00705*cos((M5-M4-48.958)*rad)
  142.            +0.00607*cos((2*M5-M4-188.350)*rad)
  143.            +0.00445*cos((2*M5-2*M4-191.897)*rad)
  144. !          +0.00388*cos((M-2*M4+20.495)*rad);
  145. !     lonpert+= 0.00238*cos((M-M4+35.097)*rad)
  146.            +0.00204*cos((2*M-3*M4+158.638)*rad)
  147.            +0.00177*cos((3*M4-M2-57.602)*rad)
  148.            +0.00136*cos((2*M-4*M4+154.093)*rad)
  149. ***************
  150. *** 445,452 ****
  151.       radpert+= 0.000007914*cos((3*M5-2*M4-139.737)*rad)
  152.            +0.000007004*cos((2*M5-3*M4-102.888)*rad)
  153.            +0.000006620*cos((M-2*M4+113.202)*rad)
  154. !          +0.000004930*cos((3*M5-3*M4-76.243)*rad)
  155. !          +0.000004693*cos((3*M-5*M4+190.603)*rad)
  156.            +0.000004571*cos((2*M-4*M4+244.702)*rad)
  157.            +0.000004409*cos((3*M5-M4-115.828)*rad);
  158.       r = r + radpert;
  159. --- 464,471 ----
  160.       radpert+= 0.000007914*cos((3*M5-2*M4-139.737)*rad)
  161.            +0.000007004*cos((2*M5-3*M4-102.888)*rad)
  162.            +0.000006620*cos((M-2*M4+113.202)*rad)
  163. !          +0.000004930*cos((3*M5-3*M4-76.243)*rad);
  164. !     radpert+= 0.000004693*cos((3*M-5*M4+190.603)*rad)
  165.            +0.000004571*cos((2*M-4*M4+244.702)*rad)
  166.            +0.000004409*cos((3*M5-M4-115.828)*rad);
  167.       r = r + radpert;
  168. ***************
  169. *** 507,513 ****
  170.       -(0.003083 + 0.000275*nu2 - 0.000489*nu2*nu2)*sin(2*V)
  171.       +0.002472*sin(W)
  172.       +0.013619*sin(ze)
  173. !     +0.018472*sin(2*ze)
  174.       +0.006717*sin(3*ze)
  175.       +0.002775*sin(4*ze)
  176.       +(0.007275 - 0.001253*nu2)*sin(ze)*sin(Q)
  177. --- 526,533 ----
  178.       -(0.003083 + 0.000275*nu2 - 0.000489*nu2*nu2)*sin(2*V)
  179.       +0.002472*sin(W)
  180.       +0.013619*sin(ze)
  181. !     +0.018472*sin(2*ze);
  182. ! l1pert = l1pert
  183.       +0.006717*sin(3*ze)
  184.       +0.002775*sin(4*ze)
  185.       +(0.007275 - 0.001253*nu2)*sin(ze)*sin(Q)
  186. ***************
  187. *** 519,525 ****
  188.       -(0.035681 + 0.001208*nu2)*sin(ze)*cos(Q)
  189.       -0.004261*sin(2*ze)*cos(Q)
  190.       +0.002178*cos(Q)
  191. !     +(-0.006333 + 0.001161*nu2)*cos(ze)*cos(Q)
  192.       -0.006675*cos(2*ze)*cos(Q)
  193.       -0.002664*cos(3*ze)*cos(Q)
  194.       -0.002572*sin(ze)*sin(2*Q)
  195. --- 539,546 ----
  196.       -(0.035681 + 0.001208*nu2)*sin(ze)*cos(Q)
  197.       -0.004261*sin(2*ze)*cos(Q)
  198.       +0.002178*cos(Q)
  199. !     +(-0.006333 + 0.001161*nu2)*cos(ze)*cos(Q);
  200. ! l1pert = l1pert
  201.       -0.006675*cos(2*ze)*cos(Q)
  202.       -0.002664*cos(3*ze)*cos(Q)
  203.       -0.002572*sin(ze)*sin(2*Q)
  204. ***************
  205. *** 532,538 ****
  206.       -.0006764*sin(ze)*sin(Q)
  207.       -.0001110*sin(2*ze)*sin(Q)
  208.       -.0000224*sin(3*ze)*sin(Q)
  209. !     -.0000204*sin(Q)
  210.       +(.0001284 + .0000116*nu2)*cos(ze)*sin(Q)
  211.       +.0000188*cos(2*ze)*sin(Q)
  212.       +(.0001460 + .0000130*nu2)*sin(ze)*cos(Q)
  213. --- 553,560 ----
  214.       -.0006764*sin(ze)*sin(Q)
  215.       -.0001110*sin(2*ze)*sin(Q)
  216.       -.0000224*sin(3*ze)*sin(Q)
  217. !     -.0000204*sin(Q);
  218. ! epert = epert
  219.       +(.0001284 + .0000116*nu2)*cos(ze)*sin(Q)
  220.       +.0000188*cos(2*ze)*sin(Q)
  221.       +(.0001460 + .0000130*nu2)*sin(ze)*cos(Q)
  222. ***************
  223. *** 544,550 ****
  224.       +.0000508*cos(3*ze)*cos(Q)
  225.       +.0000230*cos(4*ze)*cos(Q)
  226.       +.0000108*cos(5*ze)*cos(Q)
  227. !     -(.0000956 + .0000073*nu2)*sin(ze)*sin(2*Q)
  228.       +.0000448*sin(2*ze)*sin(2*Q)
  229.       +.0000137*sin(3*ze)*sin(2*Q)
  230.       +(-.0000997 + .0000108*nu2)*cos(ze)*sin(2*Q)
  231. --- 566,573 ----
  232.       +.0000508*cos(3*ze)*cos(Q)
  233.       +.0000230*cos(4*ze)*cos(Q)
  234.       +.0000108*cos(5*ze)*cos(Q)
  235. !     -(.0000956 + .0000073*nu2)*sin(ze)*sin(2*Q);
  236. ! epert = epert
  237.       +.0000448*sin(2*ze)*sin(2*Q)
  238.       +.0000137*sin(3*ze)*sin(2*Q)
  239.       +(-.0000997 + .0000108*nu2)*cos(ze)*sin(2*Q)
  240. ***************
  241. *** 554,560 ****
  242.       +(-.0000956 +.0000099*nu2)*sin(ze)*cos(2*Q)
  243.       +.0000490*sin(2*ze)*cos(2*Q)
  244.       +.0000158*sin(3*ze)*cos(2*Q)
  245. !     +.0000179*cos(2*Q)
  246.       +(.0001024 + .0000075*nu2)*cos(ze)*cos(2*Q)
  247.       -.0000437*cos(2*ze)*cos(2*Q)
  248.       -.0000132*cos(3*ze)*cos(2*Q);
  249. --- 577,584 ----
  250.       +(-.0000956 +.0000099*nu2)*sin(ze)*cos(2*Q)
  251.       +.0000490*sin(2*ze)*cos(2*Q)
  252.       +.0000158*sin(3*ze)*cos(2*Q)
  253. !     +.0000179*cos(2*Q);
  254. ! epert = epert
  255.       +(.0001024 + .0000075*nu2)*cos(ze)*cos(2*Q)
  256.       -.0000437*cos(2*ze)*cos(2*Q)
  257.       -.0000132*cos(3*ze)*cos(2*Q);
  258. ***************
  259. *** 562,568 ****
  260.   w1pert = (0.007192 - 0.003147*nu2)*sin(V)
  261.       +(-0.020428 - 0.000675*nu2 + 0.000197*nu2*nu2)*cos(V)
  262.       +(0.007269 + 0.000672*nu2)*sin(ze)*sin(Q)
  263. !     -0.004344*sin(Q)
  264.       +0.034036*cos(ze)*sin(Q)
  265.       +0.005614*cos(2*ze)*sin(Q)
  266.       +0.002964*cos(3*ze)*sin(Q)
  267. --- 586,593 ----
  268.   w1pert = (0.007192 - 0.003147*nu2)*sin(V)
  269.       +(-0.020428 - 0.000675*nu2 + 0.000197*nu2*nu2)*cos(V)
  270.       +(0.007269 + 0.000672*nu2)*sin(ze)*sin(Q)
  271. !     -0.004344*sin(Q);
  272. ! w1pert = w1pert
  273.       +0.034036*cos(ze)*sin(Q)
  274.       +0.005614*cos(2*ze)*sin(Q)
  275.       +0.002964*cos(3*ze)*sin(Q)
  276. ***************
  277. *** 573,579 ****
  278.       -0.006603*cos(ze)*cos(Q)
  279.       -0.005356*sin(ze)*sin(2*Q)
  280.       +0.002722*sin(2*ze)*sin(2*Q)
  281. !     +0.004483*cos(ze)*sin(2*Q)
  282.       -0.002642*cos(2*ze)*sin(2*Q)
  283.       +0.004403*sin(ze)*cos(2*Q)
  284.       -0.002536*sin(2*ze)*cos(2*Q)
  285. --- 598,605 ----
  286.       -0.006603*cos(ze)*cos(Q)
  287.       -0.005356*sin(ze)*sin(2*Q)
  288.       +0.002722*sin(2*ze)*sin(2*Q)
  289. !     +0.004483*cos(ze)*sin(2*Q);
  290. ! w1pert = w1pert
  291.       -0.002642*cos(2*ze)*sin(2*Q)
  292.       +0.004403*sin(ze)*cos(2*Q)
  293.       -0.002536*sin(2*ze)*cos(2*Q)
  294. ***************
  295. *** 591,597 ****
  296.       +.000693*cos(2*ze)
  297.       +.000312*cos(3*ze)
  298.       +.000147*cos(4*ze)
  299. !     +.000299*sin(ze)*sin(Q)
  300.       +.000181*cos(2*ze)*sin(Q)
  301.       +.000204*sin(2*ze)*cos(Q)
  302.       +.000111*sin(3*ze)*cos(Q)
  303. --- 617,624 ----
  304.       +.000693*cos(2*ze)
  305.       +.000312*cos(3*ze)
  306.       +.000147*cos(4*ze)
  307. !     +.000299*sin(ze)*sin(Q);
  308. ! apert = apert
  309.       +.000181*cos(2*ze)*sin(Q)
  310.       +.000204*sin(2*ze)*cos(Q)
  311.       +.000111*sin(3*ze)*cos(Q)
  312. ***************
  313. *** 645,651 ****
  314.   l1pert = (-0.814181 + 0.018150*nu2 + 0.016714*nu2*nu2)*sin(V)
  315.        +(-0.010497 + 0.160906*nu2 - 0.004100*nu2*nu2)*cos(V)
  316.        +0.007581*sin(2*V)
  317. !      -0.007986*sin(W)
  318.        -0.148811*sin(ze)
  319.        -0.040786*sin(2*ze)
  320.        -0.015208*sin(3*ze)
  321. --- 672,679 ----
  322.   l1pert = (-0.814181 + 0.018150*nu2 + 0.016714*nu2*nu2)*sin(V)
  323.        +(-0.010497 + 0.160906*nu2 - 0.004100*nu2*nu2)*cos(V)
  324.        +0.007581*sin(2*V)
  325. !      -0.007986*sin(W);
  326. ! l1pert = l1pert
  327.        -0.148811*sin(ze)
  328.        -0.040786*sin(2*ze)
  329.        -0.015208*sin(3*ze)
  330. ***************
  331. *** 655,661 ****
  332.       +(0.008931 + 0.002728*nu2)*sin(ze)*sin(Q)
  333.       -0.016500*sin(2*ze)*sin(Q)
  334.       -0.005775*sin(3*ze)*sin(Q)
  335. !     +(0.081344 + 0.003206*nu2)*cos(ze)*sin(Q)
  336.       +0.015019*cos(2*ze)*sin(Q)
  337.       +(0.085581 + 0.002494*nu2)*sin(ze)*cos(Q)
  338.       +(0.025328 - 0.003117*nu2)*cos(ze)*cos(Q);
  339. --- 683,690 ----
  340.       +(0.008931 + 0.002728*nu2)*sin(ze)*sin(Q)
  341.       -0.016500*sin(2*ze)*sin(Q)
  342.       -0.005775*sin(3*ze)*sin(Q)
  343. !     +(0.081344 + 0.003206*nu2)*cos(ze)*sin(Q);
  344. ! l1pert = l1pert
  345.       +0.015019*cos(2*ze)*sin(Q)
  346.       +(0.085581 + 0.002494*nu2)*sin(ze)*cos(Q)
  347.       +(0.025328 - 0.003117*nu2)*cos(ze)*cos(Q);
  348. ***************
  349. *** 663,669 ****
  350.       +0.014394*cos(2*ze)*cos(Q)
  351.       +0.006319*cos(3*ze)*cos(Q)
  352.       +0.006369*sin(ze)*sin(2*Q)
  353. !     +0.009156*sin(2*ze)*sin(2*Q)
  354.       +0.007525*sin(3*psi)*sin(2*Q)
  355.       -0.005236*cos(ze)*cos(2*Q)
  356.       -0.007736*cos(2*ze)*cos(2*Q)
  357. --- 692,699 ----
  358.       +0.014394*cos(2*ze)*cos(Q)
  359.       +0.006319*cos(3*ze)*cos(Q)
  360.       +0.006369*sin(ze)*sin(2*Q)
  361. !     +0.009156*sin(2*ze)*sin(2*Q);
  362. ! l1pert = l1pert
  363.       +0.007525*sin(3*psi)*sin(2*Q)
  364.       -0.005236*cos(ze)*cos(2*Q)
  365.       -0.007736*cos(2*ze)*cos(2*Q)
  366. ***************
  367. *** 673,679 ****
  368.       +(.0013381 + .0001226*nu2 -.0000253*nu2*nu2)*cos(V)
  369.       +(.0000248 - .0000121*nu2)*sin(2*V)
  370.       -(.0000305 + .0000091*nu2)*cos(2*V)
  371. !     +.0000412*sin(2*ze)
  372.       +.0012415*sin(Q)
  373.       +(.0000390 -.0000617*nu2)*sin(ze)*sin(Q)
  374.       +(.0000165 - .0000204*nu2)*sin(2*ze)*sin(Q)
  375. --- 703,710 ----
  376.       +(.0013381 + .0001226*nu2 -.0000253*nu2*nu2)*cos(V)
  377.       +(.0000248 - .0000121*nu2)*sin(2*V)
  378.       -(.0000305 + .0000091*nu2)*cos(2*V)
  379. !     +.0000412*sin(2*ze);
  380. ! epert = epert
  381.       +.0012415*sin(Q)
  382.       +(.0000390 -.0000617*nu2)*sin(ze)*sin(Q)
  383.       +(.0000165 - .0000204*nu2)*sin(2*ze)*sin(Q)
  384. ***************
  385. *** 684,690 ****
  386.       -.0000821*cos(4*ze)*sin(Q)
  387.       -.0000377*cos(5*ze)*sin(Q)
  388.       +.0000497*cos(2*psi)*sin(Q)
  389. !     +(.0000163 - .0000611*nu2)*cos(Q)
  390.       -.0012696*sin(ze)*cos(Q)
  391.       -.0004200*sin(2*ze)*cos(Q)
  392.       -.0001503*sin(3*ze)*cos(Q)
  393. --- 715,722 ----
  394.       -.0000821*cos(4*ze)*sin(Q)
  395.       -.0000377*cos(5*ze)*sin(Q)
  396.       +.0000497*cos(2*psi)*sin(Q)
  397. !     +(.0000163 - .0000611*nu2)*cos(Q);
  398. ! epert = epert
  399.       -.0012696*sin(ze)*cos(Q)
  400.       -.0004200*sin(2*ze)*cos(Q)
  401.       -.0001503*sin(3*ze)*cos(Q)
  402. ***************
  403. *** 695,701 ****
  404.       +(-.0000086 + .0000230*nu2)*cos(2*ze)*cos(Q)
  405.       +.0000461*sin(2*psi)*cos(Q)
  406.       -.0000350*sin(2*Q)
  407. !     +(.0002211 - .0000286*nu2)*sin(ze)*sin(2*Q)
  408.       -.0002208*sin(2*ze)*sin(2*Q)
  409.       -.0000568*sin(3*ze)*sin(2*Q)
  410.       -.0000346*sin(4*ze)*sin(2*Q)
  411. --- 727,734 ----
  412.       +(-.0000086 + .0000230*nu2)*cos(2*ze)*cos(Q)
  413.       +.0000461*sin(2*psi)*cos(Q)
  414.       -.0000350*sin(2*Q)
  415. !     +(.0002211 - .0000286*nu2)*sin(ze)*sin(2*Q);
  416. ! epert = epert
  417.       -.0002208*sin(2*ze)*sin(2*Q)
  418.       -.0000568*sin(3*ze)*sin(2*Q)
  419.       -.0000346*sin(4*ze)*sin(2*Q)
  420. ***************
  421. *** 707,713 ****
  422.       +.0000467*cos(3*psi)*sin(2*Q)
  423.       -.0000490*cos(2*Q)
  424.       -(.0002842 + .0000279*nu2)*sin(ze)*cos(2*Q)
  425. !     +(.0000128 + .0000226*nu2)*sin(2*ze)*cos(2*Q)
  426.       +.0000224*sin(3*ze)*cos(2*Q)
  427.       +(-.0001594 + .0000282*nu2)*cos(ze)*cos(2*Q)
  428.       +(.0002162 - .0000207*nu2)*cos(2*ze)*cos(2*Q)
  429. --- 740,747 ----
  430.       +.0000467*cos(3*psi)*sin(2*Q)
  431.       -.0000490*cos(2*Q)
  432.       -(.0002842 + .0000279*nu2)*sin(ze)*cos(2*Q)
  433. !     +(.0000128 + .0000226*nu2)*sin(2*ze)*cos(2*Q);
  434. ! epert = epert
  435.       +.0000224*sin(3*ze)*cos(2*Q)
  436.       +(-.0001594 + .0000282*nu2)*cos(ze)*cos(2*Q)
  437.       +(.0002162 - .0000207*nu2)*cos(2*ze)*cos(2*Q)
  438. ***************
  439. *** 716,722 ****
  440.       +.0000343*cos(4*ze)*cos(2*Q)
  441.       +.0000469*sin(3*psi)*cos(2*Q)
  442.       -.0000242*cos(3*psi)*cos(2*Q)
  443. !     -.0000205*sin(ze)*sin(3*Q)
  444.       +.0000262*sin(3*ze)*sin(3*Q)
  445.       +.0000208*cos(ze)*cos(3*Q)
  446.       -.0000271*cos(3*ze)*cos(3*Q)
  447. --- 750,757 ----
  448.       +.0000343*cos(4*ze)*cos(2*Q)
  449.       +.0000469*sin(3*psi)*cos(2*Q)
  450.       -.0000242*cos(3*psi)*cos(2*Q)
  451. !     -.0000205*sin(ze)*sin(3*Q);
  452. ! epert = epert
  453.       +.0000262*sin(3*ze)*sin(3*Q)
  454.       +.0000208*cos(ze)*cos(3*Q)
  455.       -.0000271*cos(3*ze)*cos(3*Q)
  456. ***************
  457. *** 728,734 ****
  458.       -0.007075*sin(ze)
  459.       -0.075825*sin(ze)*sin(Q)
  460.       -0.024839*sin(2*ze)*sin(Q)
  461. !     -0.008631*sin(3*ze)*sin(Q)
  462.       -0.072586*cos(Q)
  463.       -0.150383*cos(ze)*cos(Q)
  464.       +0.026897*cos(2*ze)*cos(Q)
  465. --- 763,770 ----
  466.       -0.007075*sin(ze)
  467.       -0.075825*sin(ze)*sin(Q)
  468.       -0.024839*sin(2*ze)*sin(Q)
  469. !     -0.008631*sin(3*ze)*sin(Q);
  470. ! w1pert = w1pert
  471.       -0.072586*cos(Q)
  472.       -0.150383*cos(ze)*cos(Q)
  473.       +0.026897*cos(2*ze)*cos(Q)
  474. ***************
  475. *** 737,743 ****
  476.       -(0.013597 +0.001719*nu2)*sin(ze)*sin(2*Q)
  477.       +(-0.007742 + 0.001517*nu2)*cos(ze)*sin(2*Q)
  478.       +(0.013586 - 0.001375*nu2)*cos(2*ze)*sin(2*Q)
  479. !     +(-0.013667 + 0.001239*nu2)*sin(ze)*cos(2*Q)
  480.       +0.011981*sin(2*ze)*cos(2*Q)
  481.       +(0.014861 + 0.001136*nu2)*cos(ze)*cos(2*Q)
  482.       -(0.013064 + 0.001628*nu2)*cos(2*ze)*cos(2*Q);
  483. --- 773,780 ----
  484.       -(0.013597 +0.001719*nu2)*sin(ze)*sin(2*Q)
  485.       +(-0.007742 + 0.001517*nu2)*cos(ze)*sin(2*Q)
  486.       +(0.013586 - 0.001375*nu2)*cos(2*ze)*sin(2*Q)
  487. !     +(-0.013667 + 0.001239*nu2)*sin(ze)*cos(2*Q);
  488. ! w1pert = w1pert
  489.       +0.011981*sin(2*ze)*cos(2*Q)
  490.       +(0.014861 + 0.001136*nu2)*cos(ze)*cos(2*Q)
  491.       -(0.013064 + 0.001628*nu2)*cos(2*ze)*cos(2*Q);
  492. ***************
  493. *** 751,757 ****
  494.   apert = .000572*sin(V) -.001590*sin(2*ze)*cos(Q)
  495.       +.002933*cos(V) -.000647*sin(3*ze)*cos(Q)
  496.       +.033629*cos(ze) -.000344*sin(4*ze)*cos(Q)
  497. !     -.003081*cos(2*ze) +.002885*cos(ze)*cos(Q)
  498.       -.001423*cos(3*ze) +(.002172 + .000102*nu2)*cos(2*ze)*cos(Q)
  499.       -.000671*cos(4*ze) +.000296*cos(3*ze)*cos(Q)
  500.       -.000320*cos(5*ze) -.000267*sin(2*ze)*sin(2*Q);
  501. --- 788,795 ----
  502.   apert = .000572*sin(V) -.001590*sin(2*ze)*cos(Q)
  503.       +.002933*cos(V) -.000647*sin(3*ze)*cos(Q)
  504.       +.033629*cos(ze) -.000344*sin(4*ze)*cos(Q)
  505. !     -.003081*cos(2*ze) +.002885*cos(ze)*cos(Q);
  506. ! apert = apert
  507.       -.001423*cos(3*ze) +(.002172 + .000102*nu2)*cos(2*ze)*cos(Q)
  508.       -.000671*cos(4*ze) +.000296*cos(3*ze)*cos(Q)
  509.       -.000320*cos(5*ze) -.000267*sin(2*ze)*sin(2*Q);
  510. ***************
  511. *** 763,769 ****
  512.       -.000393*sin(3*ze)*sin(Q)
  513.       -.000228*sin(4*ze)*sin(Q)
  514.       +.002138*cos(ze)*sin(Q)
  515. !     -.000999*cos(2*ze)*sin(Q)
  516.       -.000642*cos(3*ze)*sin(Q)
  517.       -.000325*cos(4*ze)*sin(Q)
  518.       -.000890*cos(Q)
  519. --- 801,808 ----
  520.       -.000393*sin(3*ze)*sin(Q)
  521.       -.000228*sin(4*ze)*sin(Q)
  522.       +.002138*cos(ze)*sin(Q)
  523. !     -.000999*cos(2*ze)*sin(Q);
  524. ! apert = apert
  525.       -.000642*cos(3*ze)*sin(Q)
  526.       -.000325*cos(4*ze)*sin(Q)
  527.       -.000890*cos(Q)
  528. ***************
  529. *** 772,778 ****
  530.       -.000856*sin(ze)*cos(2*Q)
  531.       +.000441*sin(2*ze)*cos(2*Q)
  532.       +.000296*cos(2*ze)*cos(2*Q)
  533. !     +.000211*cos(3*ze)*cos(2*Q)
  534.       -.000427*sin(ze)*sin(3*Q)
  535.       +.000398*sin(3*ze)*sin(3*Q)
  536.       +.000344*cos(ze)*cos(3*Q)
  537. --- 811,818 ----
  538.       -.000856*sin(ze)*cos(2*Q)
  539.       +.000441*sin(2*ze)*cos(2*Q)
  540.       +.000296*cos(2*ze)*cos(2*Q)
  541. !     +.000211*cos(3*ze)*cos(2*Q);
  542. ! apert = apert
  543.       -.000427*sin(ze)*sin(3*Q)
  544.       +.000398*sin(3*ze)*sin(3*Q)
  545.       +.000344*cos(ze)*cos(3*Q)
  546. ***************
  547. *** 1002,1009 ****
  548.       +.001051*cos(2*th);
  549.   trans(r,b,ll,Stheta,Sr,epli, MAGNEP, "PN", "Neptune");
  550.   
  551.   putchar('\n');
  552. ! close(logfile);
  553.   exit(0);
  554.   } /* end of program main */
  555.   
  556. --- 1042,1061 ----
  557.       +.001051*cos(2*th);
  558.   trans(r,b,ll,Stheta,Sr,epli, MAGNEP, "PN", "Neptune");
  559.   
  560. + #ifdef ST_MWC
  561. + Cconws("\r\n");
  562. + #else /* !ST_MWC */
  563.   putchar('\n');
  564. ! #endif /* ST_MWC */
  565. ! fclose(logfile);
  566. ! #ifdef ST_MWC /* We want to hold the screen if invoked from the GEM desktop; */
  567. !            /* the desktop doesn't usually set any environment variables, */
  568. !            /* and if getenv() does find anything, it's probably empty */
  569. ! if (((getenv("PATH")) == 0) || (strlen(getenv("PATH")) == 0)) {
  570. !      Cconws("press any key to continue: "); /* Hold screen if desktop */
  571. !      i = Crawcin(); /* Read raw character input */
  572. ! }
  573. ! #endif /* ST_MWC */
  574.   exit(0);
  575.   } /* end of program main */
  576.   
  577. ***************
  578. *** 1023,1031 ****
  579. --- 1075,1089 ----
  580.   double aint(z)
  581.       double z;
  582.   {
  583. + #ifdef ST_MWC /* In Mark Williams C ints are 16 bits long, so use longs */
  584. +     long trunk;
  585. +     
  586. +     trunk = (long)z;
  587. + #else /* !ST_MWC */
  588.       int trunk;
  589.       
  590.       trunk = (int)z;
  591. + #endif /* ST_MWC */
  592.       z = (double) trunk;
  593.       return(z);
  594.   }
  595.